<html>

<head>

<meta name="description" content="OpenBiblio Library Automation System">
<title>OpenBiblio Install Instructions</title>
<style type="text/css">
.notice {
  margin-left: 50px;
  margin-right: 50px;
  border: solid black 1px;
  background: #ffaaaa;
  padding: 4px;
}
.new {
  margin-left: 50px;
  margin-right: 50px;
  border: solid black 1px;
  background: #ffffaa;
  padding: 4px;
}
h1 { border-bottom: solid black 1px }
th { text-align: right }
</style>
</head>
<body bgcolor="#ffffff" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0" marginheight="0" marginwidth="0">
<div style="background: #bebdbe"><img src="images/obiblio_logo.gif" width="170" height="35" border="0"></div>
<div style="padding: 8px">
<h1>Contents:</h1>
<ul>
    <li><a href="#releaseNotes">Release Notes</a></li>
    <li><a href="#sysReq">System requirements</a></li>
    <li><a href="#install">Install Instructions</a></li>
    <li><a href="#update">Updating from a previous version of OpenBiblio</a></li>
</ul>

<a name="releaseNotes">
<h1>Release Notes:</h1>
</a>
<p>Version 0.7.1 is recommended for new installs and for updating older versions of OpenBiblio, 
including all versions from <i>openbiblio.de</i>. The most important changes are:</p>
<ul>
  <li>Updated to be compatible with MySQL 5.5.</li>
  <li>Updated for PHP 5.3.x deprecated features.</li>
  <li>Updated for PHP 5.4.0 backward incompatible changes.</li>
  <li>Fixes for bugs in OpenBiblio features.</li>
  <li>New and changed features: Check In shows hyperlinked member name (with Days Late and 
    outstanding Account Balance), Override Due Date, Renew All, Offline Circulation, Bibliography 
    Checkout History, Custom Copy Fields, Copy Barcode Number validation less restrictive and 
    optional, new search types Call Number and Keyword, OPAC search and view exclude nonpublic 
    fields, new parameters for reports Copy Search and Popular Bibliographies, new reports, new 
    layouts for media labels and  member cards.</li>
</ul>
<p>See the <a href="ChangeLog">ChangeLog</a> for more details. Please understand that 0.7.0 never 
was released officially, but we are still trying to following the version numbering convention 
expressed at the release of 0.6.0. Some changes for 0.7.1 might appear as new features (not in 
0.7.0), technically they are built on bugfixes.</p>
Update urgency:
<ul>
  <li>Versions below 0.5.2: urgent. The deviant versions from <i>openbiblio.de</i> can now be 
    updated <a href="#update">automatically</a>.</li>
  <li>0.5.2: urgency depends on required compatibility, bugfixes, new features and on trusting 
    staff users with the reports privilege.</li>
  <li>0.6.0, 0.6.1: urgency depends on required compatibility, bugfixes and new features.</li>
  <li>0.7.0: many fixes for new features, especially in Circulation.</li>
</ul>
Known limitations:
<ul>
  <li>MARC is not stored perfectly in the database tables (issue 1, fixed in obiblio-10-wip).</li>
  <li>The search process was designed to be easy for the end user, not to query large databases 
    efficiently - do not expect great performance when more than 20,000 MARC records with lots of 
    fields are imported.</li>
  <li>UTF-8 multibyte characters: very limited support in reports and possibly issues with search 
    (issue 19).</li>
  <li>If you have not updated to 64 bit PHP before some day in the year 2038: days late and late 
    fee not calculated, incorrect timestamp calculations for holds (issue 51).</li>
</ul>
<p>OpenBiblio test suite ran successfully on the following configurations:</p>
<blockquote>
<table>
  <tr>
    <th>Operating System:</th>
    <td>Microsoft Windows 7</td>
    <td>Ubuntu 9.04 (GNU/Linux)</td>
    <td>Ubuntu 9.04 (GNU/Linux)</td>
  </tr>
  <tr>
    <th>PHP Version:</th>
    <td>5.4.0 RC4 VC9 <sup>EasyPHP</sup></td>
    <td>5.3.1 <sup>XAMPP for Linux 173a</sup></td>
    <td>4.3.9 <sup>XAMPP for Linux 149a</sup></td>
  </tr>
  <tr>
    <th>Web Server:</th>
    <td>Apache 2.2.21 VC9</td>
    <td>Apache 2.2.14</td>
    <td>Apache 2.0.52</td>
  </tr>
  <tr>
    <th>MySql Version:</th>
    <td>5.5.19</td>
    <td>5.1.41</td>
    <td>4.0.21</td>
  </tr>
  <tr>
    <th>Browser:</th>
    <td>Firefox 10.0.2<br>Internet Explorer 9.0.5</td>
    <td>Firefox 3.6.27</td>
    <td>Firefox 3.6.27</td>
  </tr>
</table>
</blockquote>
</li>
</ul>
<a name="sysReq">
<h1>System requirements:</h1>
</a>
<ul>
<li>PHP version 4.2.0 or higher and a web server which supports it</li>
<li>MySQL version 4.0.12 or higher</li>
<li>A relatively modern web browser.  Versions of Internet Explorer before 6.0 may
  have problems with PDF files generated by OpenBiblio.  Users of Netscape 4.x and earlier
  may suffer from appearance problems.</li>
</ul>
<div class="notice">
OpenBiblio 0.7.1 is still compatible with ancient versions of PHP and MySQL. Make sure to use versions that are updated for security.
</div>
<br>
<div class="new">
<strong>Commonly used scenarios for making a system meet the requirements:</strong>
<ul>
  <li>Linux: add the required software using a "package manager".</li>
  <li>Windows: for standalone use or testing purposes use a "WAMP" package like <a href="http://www.easyphp.org">EasyPHP</a>.</li>
  <li>Handpick the required software: full procedure below.</li>
</ul>
Find more reading, tutorials, etc. in the documentation section of <a href="http://obiblio.sourceforge.net/">OpenBiblio's home</a>.
</div>
<a name="install">
<h1>Install Instructions:</h1>
</a>
<div class="new">
For systems that meet the requirements: jump to <a href="#step5">step 5 and finish the procedure.</a>
</div>
<br>
<div class="new">
When using <i>phpMyAdmin</i> for setting up the database:
<ul>
  <li>Open the SQL query window.</li>
  <li>Run the SQL commands from <a href="#step5">step 5</a> and step 6 in the procedure below.
  The command is the part in <tt><b>bold</b></tt> directly after <tt>mysql></tt></li>
  <li>Jump to <a href="#step8">step 8</a> and finish the procedure.</li>
</ul>
</div>
<h3>Procedure</h3>
<div class="notice">Steps 1-4: detail is out of date, but the basics are still valid.</div>
<ol>
  <li>Install a web server such as <a href="http://httpd.apache.org/">Apache</a> that is
     compatible with PHP.  If you install Apache, get familiar with starting 
     and stopping your Apache Web Server. If you are running Windows 95 or Windows 98 
     there will be "Start Apache" and "Stop Apache" icons that will help you start 
     and stop your web server. You may want to consider adding the "Start Apache" 
     icon to your startup folder. If you are running NT or Windows 2000 you can add Apache as a 
     service which will be running, even if you are logged off.  If you are running Linux
     your Apache server should be packaged with your Linux installation and will start when
     you start Linux.
  </li>
  <li>Add PHP to your web server as a CGI or a module.  If you are using Apache 2.0, I would highly
     recommend that you install PHP as a module instead of a cgi application.  In my experience the
     Apache PHP module performed over 4 times faster than the cgi PHP.  See 
     <a href="http://www.php.net/manual/en/install.apache2.php">Example 3-9. PHP and Apache 2.0 as Module</a>
     in the <a href="http://www.php.net/manual/en/">PHP Manual</a> for more info on how to install PHP
     as a module.
     <p>OpenBiblio uses session data.  Therefore, you will need to make sure PHP sessions are turned on.
     Be sure to create a directory for your session data on your server and specify the session.save_path
     in your php.ini file.  The default php.ini sets session.save_path to "/tmp".  Therefore, you have
     to create a directory called c:/tmp (for Windows) users.  However, I usually create a more descriptive name
     inside my PHP directory and then change my php.ini file to match it.
     <p>Example php.ini directive:
     <pre>session.save_path = d:\PHP\sessiondata</pre>
     
     <p>See section <a href="http://www.php.net/manual/en/ref.session.php">XCIII. Session handling functions</a>
     in the PHP manual for more details on PHP sessions.
  </li>
  <li>Install the MySQL database from <a href="http://www.mysql.com/">http://www.mysql.com/</a>.
     Get familiar with starting and stopping your MySQL Server.  See
     <a href="http://www.mysql.com/doc/W/i/Win95_start.html">Starting MySQL on Windows 95 or
     Windows 98</a> for more information.<br><br>
     If you are running NT or Windows 2000, setup MySQL as a service so it starts whenever the machine
     powers up.  See <a href="http://www.mysql.com/doc/N/T/NT_start.html">Starting MySQL on Windows NT or Windows 2000</a>
     for more information on starting MySQL as a service.<br><br>
     If you are running Linux, MySQL should be packaged with your Linux installation and will start when
     you start Linux.
  </li>

  <li>Get familiar with logging into MySQL with your admin account within a DOS prompt window.  You can use the following command sequence as a test.
<blockquote><pre>
C:\><b>c:\mysql\bin\mysql -uroot mysql</b>
Enter password: <b>*********</b>
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8 to server version: 3.23.26-beta

Type 'help;' or '\h' for help. Type '\c' to clear the buffer

mysql> <b>show databases;</b>
+--------------+
| Database     |
+--------------+
| mysql        |
+--------------+
6 rows in set (0.00 sec)

mysql> <b>exit</b>
Bye

C:\>
</pre></blockquote>
  </li>     


  <a name="step5">
  <li>Create an OpenBiblio database.  To do this, log into MySQL with your admin account 
     and run the following SQL command.
     <blockquote><pre>
mysql> <b>create database OpenBiblio /*!40100 default character set latin1 */;</b>
</pre>
<div class="new">
<strong>New:</strong> The conditional comment <b><tt>/* ... */ </tt></b>is executed on MySQL 4.1.0 or higher and specifies 
<tt>latin1</tt> as the default database character set for the database created.
</div>
<br>
<div class="notice">
You might discover issues when the database character set is not  <tt>latin1</tt>.
<table border="1">
<th>database&nbsp;character&nbsp;set</th>
<th>tab Admin: Library Settings, field <i>HTML&nbsp;Charset</i></th>
<th>comment</th>
<tr>
<td>latin1<br><i>(recommended)</i></td>
<td>iso-8859-1<br><i>(initial value, set by install)</i></td>
<td>No issues.</i></td>
</tr>
<tr>
<td>utf8</td>
<td>UTF-8</td>
<td>Issues for multibyte characters
<ul>
<li>Search?</li>
<li>PDF layouts</li>
</ul>
</td>
</tr>
</table></div>
<br>
<div class="new">
<strong>New:</strong> When OpenBiblio HTML Charset setting is UTF-8, PDF layouts can display some 
multibyte characters correctly by converting to single byte.
</div>
<br>
     To check to make sure the OpenBiblio database was created properly, run the following command.
<pre>
mysql> <b>show databases;</b>
+--------------+
| Database     |
+--------------+
| mysql        |
| OpenBiblio   |
+--------------+
</pre></blockquote>

  </li>
  </a>

  <a name="step6">
  <li>Create an OpenBiblio database user.  To do this, login to MySQL under the admin userid
    and run the following SQL command, substituting <i>obiblio_user</i> and <i>obiblio_password</i> with the userid and password of your choice.
<blockquote><table><tr>
<td><pre>mysql> 
    -> </pre></td>
<td><pre><b>grant all privileges on OpenBiblio.* to <i>obiblio_user</i>@localhost</b></b>
<b>identified by '<i>obiblio_password</i>';</pre></td>
</tr></table></blockquote>
  </li>
  </a>

  <li>Verify your OpenBiblio database and user by logging into the new MySQL database under the new user.
<blockquote><pre>
<b>C:\mysql\bin\mysql -u<i>obiblio_user</i> -p<i>obiblio_password</i> OpenBiblio</b>
</pre></blockquote>
  </li>

  <a name="step8">
  <li>Copy the openbiblio directory and all of its contents into your web server's htdocs
    root or any subdirectory within the htdocs root.
  </li></a>
  <a name="step9">
  <li>Edit the database_constants.php file (located in the main openbiblio directory)
    with the text editor of your choice.
    Change the username and password to match the new MySQL user and password that you 
    created in the previous steps.
  </li></a>
  <li>Create the OpenBiblio database tables.  To do this run the install php script
   located at <a href="http://localhost/openbiblio/install/index.php">http://localhost/openbiblio/install/index.php</a>,
   assuming you placed the openbiblio directory in the root htdocs directory.
  </li>
  <li><strong>For security:</strong> Remove the openbiblio/install directory completely
    to prevent unauthorized use of install or upgrade tools.</li>
  <li><strong>For security:</strong> Verify that the <tt>display_errors</tt> setting in php.ini is 'Off'
    to prevent unintended information disclosure.</li>
  <li>Access your new library automation system at <a href="http://localhost/openbiblio/index.php">http://localhost/openbiblio/index.php</a>,
   assuming you placed the openbiblio directory in the root htdocs directory.  Enter
   "admin" for both the userid and password whenever you are prompted to signon.  You can
   change the admin password from the "Admin" tab -> staff list, where you can also add
   more library staff members.
  </li>
</ol>


<br>
<a name="update">
<h1>Updating from a previous version of OpenBiblio:</h1>
<div class="new"><strong>NEW:</strong> Updates from <i>openbiblio.de</i> versions
(e.g. 0.5.1.7) can now be performed automatically.<br><br>
The following patches that were used in <i>openbiblio.de</i> are not incorporated in version 0.7.1:<br>
<a href="http://sourceforge.net/tracker/?func=detail&aid=1158176&group_id=50071&atid=458476">Membership-Feature</a><br>
<blockquote>
Tested: field <tt>member.mbrshipend</tt> does not interfere with 0.7.1 and data remains untouched.<br>
Untested suggestion: apply the patch to your 0.7.1 updated OpenBiblio.
</blockquote>
<a href="http://sourceforge.net/tracker/?func=detail&aid=1118359&group_id=50071&atid=458476">Add Browse by Subject</a><br>
<a href="http://sourceforge.net/tracker/?func=detail&aid=1117840&group_id=50071&atid=458476">Add picture to Bibliography</a><br>
<a href="http://www.flos-inc.com/projects/index.php#main">New Member Screen</a> (barcode entered automatically for new members)
</div>
<br>

<ol>
  <li>Rename your old openbiblio installation directory
    so that you don't lose its contents.  We'll call the old directory openbiblio-old.
  </li>
  <li>Copy the new openbiblio directory and all of its contents into the directory where the old openbiblio installation was.
  </li>
  <li>Copy the database_constants.php file from the openbiblio-old directory into the new
    openbiblio directory, replacing the database_constants.php file there.
  </li>
  <li>Backup your database.  See your MySQL documentation for instructions.
  </li>
  <li>Update your OpenBiblio database tables by using the conversion tool located at
   <a href="http://localhost/openbiblio/install/index.php">http://localhost/openbiblio/install/index.php</a>,
   assuming you placed the openbiblio directory in the root htdocs directory.
  </li>
  <li><strong>For security:</strong> Remove the openbiblio/install directory completely
    to prevent unauthorized use of install or upgrade tools.</li>
  <li><strong>For security:</strong> Verify that the <tt>display_errors</tt> setting in php.ini is 'Off'
    to prevent unintended information disclosure.</li>
</ol>
<div class="notice">
<strong>Updates from 0.7.0:</strong> 0.7.1 is a bugfix release to 0.7.0: it can run without 
upgrading the database. However, step 5 is recommended. This cleans unused entries from the 
database and lifts some restrictions.
</div>
</a>
</div>
</body>
</html>
